In-band signaling
ANSIについて調べてたら知った
前から概念は把握していたが、用語があるのに驚いたmiyamonz.icon
lisp系の話題で出てくる健全なマクロもこれに関する話だと思うmiyamonz.icon 当然ながらデータ上で特定の特殊な文字列に意味を与えると、それと同じ文字を送信したいときに困ることになる
シェルとかではこれのしんどさがよく発生する
例えばIPアドレスは数字の範囲で、ローカルなIPアドレスかそうでないかが決まっている これは外部のメタデータとしてローカルかグローバルかが決まっていないという点では、in-band signalingと似ている
データ自身が外側の都合を考慮しなくてはいけないか、取り扱えるか、といった概念として、in-band signalingは便利
in-bandだとデータ構造がキレイでなく厄介になりがちだが、便利であることも多い
例えば改行文字\nなどは明らかに必要であろう
mark upとかもこれの話題と言えるな
XMLとかHTMLとか、構造化させるのに、タグを用いる
jsonとか?
bashとかのツラミとかもここらへんから発生しがち?
外側にメタ情報を追いたり、なんらかの構造を作るとかスキーマ言語だとか 最近だとそこまで難しくはないと思うが、やはりエスケープシーケンスとか気をつけないといけない
情報とメタ情報があるとき、メタ情報をメイン情報の内と外どちらに入れるのか、という話といえる
内側に入れれば in-band
外側に於けばout-of-band
namespaceとかcのincludeとか
あれは、本来外側として操作すべきなのにin-bandになってしまう?と考えられる?
もっと適切な表現はありそう
すでにデータの長さが確定していたり、編集中でない場合には、データ長を先に渡すことで、エスケープがどうとかの問題を回避できる
これは、データの外側(最初のデータ長を記述すること、その手続、及びそのプロトコルの約束)で問題を解決しているから